1. Field of the Invention
The present application pertains to Virtual Desktop Infrastructure (“VDI”) and Virtual Application Infrastructure (“VAI”), and more specifically to real-time communication among thin-terminals, and in particular their operation and use in virtualization, remote terminal, and mobile device environments.
2. Description of the Related Art
Many organizations are moving away from traditional PC-based desktop architectures in favor of Virtual Desktop Infrastructure (VDI) and Virtual Application Infrastructure (VAI). These enable knowledge workers to access software applications and desktops located in data centers from anywhere that is reachable over a network using various types of computers, mobile devices, and low-power terminals.
Virtual Desktop Infrastructure (VDI) is an adaptation of the currently predominant commercial technology trend of platform virtualization (commercially referred to as “machine virtualization”). Abstractly, platform virtualization allows an operating system to run with a degree of separation (often over a network) from the underlying physical computing platform. In practical terms, a software implementation or emulation of a computer is used to execute programs in the same way programs would execute on a hardware computer and its operating system. The software implementation or emulation of a computer in such a context is referred to as a “virtual machine” (VM). There are many adaptations, extensions, and usage nuances of the virtualization concept in computing; for example, see the wiki page on the topic (http://en.wikipedia.org/wiki/Virtualization). Many of these have commercial implementations that can provide (or claim to provide) substantially improved efficiency, maintenance, reliability, and access to computer users within an enterprise.
Among the trends in the vast contemporary virtualization marketplace is the notion of Virtual Desktop Infrastructure (VDI), wherein desktop operating systems and applications execute on virtual machines (VMS) residing on a server or group of servers, computing cloud, etc. In the commercial enterprise computing industry, a desktop operating system executing in this fashion has been termed a “virtual desktop” (http://www.vmware.com/pdf/virtual_desktop_infrastructure_wp.pdf, for example). A related concept is that of desktop virtualization. Accepted definitions can be readily found, for example in Wikipedia entries such as these:
Desktop virtualization is the concept of separating a personal computer desktop environment from the physical machine through a client-server computing model. The resulting “virtualized” desktop is stored on a remote central server, instead of on the local storage of a remote client; thus, when users work from their remote desktop client, all of the programs, applications, processes, and data used are kept and run centrally, allowing users to access their desktops on any capable device, such as a traditional personal computer, notebook computer, smartphone, or thin client. (from http://en.wikipedia.org/wiki/Desktop_virtualization, visited Mar. 1, 2010.)
Virtual desktop infrastructure (VDI) is the server computing model enabling desktop virtualization, encompassing the hardware and software systems required to support the virtualized environment. (from http://en.wikipedia.org/wiki/Desktop_virtualization, visited Mar. 1, 2010.)
VDI arrangements employ a client/server model in the sense that endpoint software and devices render graphical display as instructed by software applications running on one or more other computers (such as servers), and further in which endpoint software and devices collect and forward input events and data from users and provide these to those software applications running on the one or more other computers. In many ways, VDI resembles the X Window System architecture from the mid 1980's through mid 1990's.
Among the advantages provided by desktop virtualization and VDI are that significant portions of the software environment can be centrally operated, maintained, patched, upgraded, backed-up, protected, and managed. Subsequently, the staffing hours required by IT organizations can be considerably reduced, and higher levels of performance and availability and reliability can be obtained. Additionally, the administration and management tasks at the desktop reduce considerably. Further, remaining at the desktop are far fewer functions needing far less computing power. The resulting amount of software needed at the endpoint shrinks considerably.
With this established, some brief remarks on terminology are now provided to prevent confusion between traditional long-standing concepts and conventions in computer science and increasingly commonplace VDI terminology:
1. The far-smaller article or instance of software executing at the endpoint would historically be referred to as a “thin client.” However, this previously established terminology has now become superseded as prominent VDI terminal manufacturers use the term “thin client” as a functional and product name for associated types of end terminal hardware. As a result, those new to computing accordingly interpret the term “thin client” as hardware rather than software as it would be historically. In place of the historical terminology, the new terminology “terminal client” has become the VDI terminology for user-side software executing strictly on a remote terminal. Accordingly, herein the VDI terminology “terminal client” will be employed.
2. Adding to the potential confusion, what would otherwise be the associated complementary term of “terminal server” has come into usage as the term for server hardware and background server operating system executing on server hardware or other higher-performance and/or centralized computing system. In VDI terminology, the complementary instance of software running at a server or other type of computer and associated (in a client-server sense) with a given “terminal client” is called a “virtual machine.” Although the term “virtual machine” has its own historical usage and in other types of virtualization technology, herein the aforementioned VDI terminology will be employed.
Of key importance in the mass-acceptance of VDI is that fact that the performance of most applications operating in a VDI environment is nearly at parity with, if not exceeding, that of the tradition desktop computing world. These and many other economic and operational advantages motivate a strong drive towards VDI inside the modern enterprise computing environment.
However, no degradation in performance is actually not an accurate or complete story. Although most desktop computing applications do well or better operating in a VDI environment, in fact some applications are functionally and structurally not suited for even adequate performance in a standard VDI environment. Among these, and perhaps the most important among them, are real-time communications applications such as VoIP, video conferencing, and some types of high-performance telemetry (for example as in remote medical monitoring). Another type of exception is that of advanced data visualization. In each of these exceptions, the volume of data communications between the computational portion of applications executing at the server and rendering portion of applications executing at the endpoint can be exceedingly high and/or significantly adversely affected by delay and jitter effect inherent in the networking provided by VDI environments.
Thus, it would be desirable to have novel methods and systems for handling and implementation of real-time communications applications and other network-performance sensitive applications in a VDI environment.